gtk4.git
11 years agostack: check for widget before calling is_ancestor()
Christian Hergert [Sun, 15 Feb 2015 02:11:54 +0000 (18:11 -0800)]
stack: check for widget before calling is_ancestor()

We can hit this path during the destruction case, where widget has
been released.

This fixes a lot of superfluous error messages on console.

11 years agowayland: Update to xdg-shell unstable v5
Jonas Ådahl [Fri, 13 Feb 2015 06:17:49 +0000 (14:17 +0800)]
wayland: Update to xdg-shell unstable v5

Only trivial changes needed.

https://bugzilla.gnome.org/show_bug.cgi?id=744455

11 years agoUpdated Slovenian translation
Matej Urbančič [Sat, 14 Feb 2015 19:58:40 +0000 (20:58 +0100)]
Updated Slovenian translation

11 years agoUpdated Turkish translation
Muhammet Kara [Sat, 14 Feb 2015 17:08:13 +0000 (17:08 +0000)]
Updated Turkish translation

11 years agoGtkSearchEngine: Add debug spew
Matthias Clasen [Sat, 14 Feb 2015 05:57:29 +0000 (00:57 -0500)]
GtkSearchEngine: Add debug spew

This lets us find out which search engine implementation is
in use.

11 years agofile chooser: Allow to limit search
Matthias Clasen [Sat, 14 Feb 2015 05:48:26 +0000 (00:48 -0500)]
file chooser: Allow to limit search

Add a button to allow restricting search to the current
folder (and subdirectories). This makes the search more
useful, and makes the file chooser more similar to
nautilus.

11 years agofile chooser: Add a location column for search
Matthias Clasen [Sat, 14 Feb 2015 04:50:06 +0000 (23:50 -0500)]
file chooser: Add a location column for search

In search, we show files from differnt locations, and it makes
sense to show where they come from. This makes the file chooser
more similar to nautilus, too.

11 years agofile chooser: Don't open folders unexpectedly
Matthias Clasen [Sat, 14 Feb 2015 01:43:06 +0000 (20:43 -0500)]
file chooser: Don't open folders unexpectedly

Folders that show up among search results were unexpectedly
returned even for GTK_FILE_CHOOSER_ACTION_OPEN. Change things
around so that we switch to the folder instead, which is the
behavior we had in GTK+ 2.x.

https://bugzilla.gnome.org/show_bug.cgi?id=744204

11 years agogtkwindow: Don't set the background if the window is app-paintable
Jasper St. Pierre [Sat, 14 Feb 2015 02:21:42 +0000 (18:21 -0800)]
gtkwindow: Don't set the background if the window is app-paintable

This fixes transparent DND windows.

11 years agowayland: Do not require latest wl_seat
Pier Luigi Fiorini [Wed, 11 Feb 2015 06:46:00 +0000 (06:46 +0000)]
wayland: Do not require latest wl_seat

Some compositors might not offer wl_seat 4 resulting in GTK+ clients not
working on that compositor.

wl_seat 4 introduces keyboard repeat information, but when that information
is missing it is retrieved from settings, hence there's no reason to
require wl_seat 4.

This patch was tested against QtCompositor (5.5, dev branch)
and Weston 1.6.1.

Reviewed-by: Daniel Stone <daniels@collabora.com>
https://bugzilla.gnome.org/show_bug.cgi?id=744172

11 years agoRename GtkSidebar to GtkStackSidebar
Lars Uebernickel [Thu, 12 Feb 2015 17:09:13 +0000 (18:09 +0100)]
Rename GtkSidebar to GtkStackSidebar

GtkSidebar is too generic and doesn't fully convey what the widget does.

https://bugzilla.gnome.org/show_bug.cgi?id=744094

11 years agocsd: Always raise on primary titlebar click
Matthias Clasen [Fri, 13 Feb 2015 13:50:04 +0000 (08:50 -0500)]
csd: Always raise on primary titlebar click

This matches more closely what typical window managers do.
Pointed out in
https://bugzilla.redhat.com/show_bug.cgi?id=1158472

11 years agoForgotten file
Matthias Clasen [Fri, 13 Feb 2015 13:49:23 +0000 (08:49 -0500)]
Forgotten file

11 years agoBump version
Matthias Clasen [Thu, 12 Feb 2015 23:23:44 +0000 (18:23 -0500)]
Bump version

So apps can require 3.15.7 for new api.

11 years agogdkglcontext-win32.c: Fix Build on C89 Compilers
Chun-wei Fan [Fri, 13 Feb 2015 10:36:34 +0000 (18:36 +0800)]
gdkglcontext-win32.c: Fix Build on C89 Compilers

Make sure variables are declared at the top of the block.

11 years agonotebook: Add api to complete tab dnd from the outside
Matthias Clasen [Thu, 12 Feb 2015 22:33:10 +0000 (17:33 -0500)]
notebook: Add api to complete tab dnd from the outside

This is necessary to avoid unwanted drag cancel animations,
now that GtkNotebook is careful about cancelling a drag
when the dragged tab disappears unexpectedly.

11 years agoUpdated POTFILES.in
Piotr Drąg [Thu, 12 Feb 2015 17:53:03 +0000 (18:53 +0100)]
Updated POTFILES.in

11 years agoRemove GdkGLProfile
Emmanuele Bassi [Thu, 12 Feb 2015 17:30:42 +0000 (17:30 +0000)]
Remove GdkGLProfile

The existence of OpenGL implementations that do not provide the full
core profile compatibility because of reasons beyond the technical, like
llvmpipe not implementing floating point buffers, makes the existence of
GdkGLProfile and documenting the fact that we use core profiles a bit
harder.

Since we do not have any existing profile except the default, we can
remove the GdkGLProfile and its related API from GDK and GTK+, and sweep
the whole thing under the carpet, while we wait for an extension that
lets us ask for the most compatible profile possible.

https://bugzilla.gnome.org/show_bug.cgi?id=744407

11 years agoUpdated Spanish translation
Daniel Mustieles [Thu, 12 Feb 2015 17:40:56 +0000 (18:40 +0100)]
Updated Spanish translation

11 years agogl: Add gdk_gl_context_get_version()
Emmanuele Bassi [Thu, 12 Feb 2015 14:28:22 +0000 (14:28 +0000)]
gl: Add gdk_gl_context_get_version()

Store the OpenGL version when we first do the extensions check; this
allows client code to check the available GL version without requiring a
call to gdk_gl_context_make_current() and epoxy_gl_version().

11 years agodocs: Specify the minimum version of GL provided by the core profile
Emmanuele Bassi [Thu, 12 Feb 2015 13:32:02 +0000 (13:32 +0000)]
docs: Specify the minimum version of GL provided by the core profile

When using GDK_GL_PROFILE_3_2_CORE, we are not only specifying that the
GDK should create a core profile; we are also specifying that the
minimum required version of OpenGL is set to 3.2.

We should also specify that the GDK_GL_PROFILE_DEFAULT profile is an
alias for GDK_GL_PROFILE_3_2_CORE.

11 years agoglarea: Add accessors for the required GL version
Emmanuele Bassi [Thu, 12 Feb 2015 13:20:24 +0000 (13:20 +0000)]
glarea: Add accessors for the required GL version

Specifying the version of OpenGL is enough of a common operation that it
should not require overriding the creation of the GdkGLContext.

11 years agoglarea: Update documentation
Emmanuele Bassi [Thu, 12 Feb 2015 13:19:21 +0000 (13:19 +0000)]
glarea: Update documentation

Drop the fixed pipeline example code.

https://bugzilla.gnome.org/show_bug.cgi?id=744394

11 years agoglarea: Clean up the header
Emmanuele Bassi [Thu, 12 Feb 2015 12:42:08 +0000 (12:42 +0000)]
glarea: Clean up the header

11 years agodocs: Add missing GdkGLContext symbols
Emmanuele Bassi [Thu, 12 Feb 2015 12:40:03 +0000 (12:40 +0000)]
docs: Add missing GdkGLContext symbols

11 years agogl: Drop profile for gdk_window_create_gl_context()
Emmanuele Bassi [Thu, 12 Feb 2015 12:34:28 +0000 (12:34 +0000)]
gl: Drop profile for gdk_window_create_gl_context()

Now that we have a two-stages GL context creation sequence, we can move
the profile to a pre-realize option, like the debug and forward
compatibility bits, or the GL version to use.

11 years agogtk: x: fix compilation without x11 backend
Lionel Landwerlin [Sat, 7 Feb 2015 20:05:18 +0000 (20:05 +0000)]
gtk: x: fix compilation without x11 backend

https://bugzilla.gnome.org/show_bug.cgi?id=744148

11 years agomain: Make gtk_get_option_group() available to bindings
Bastien Nocera [Thu, 22 Jan 2015 14:13:10 +0000 (15:13 +0100)]
main: Make gtk_get_option_group() available to bindings

Now that GOptionGroup is registered as a boxed type [1], don't skip it
in gobject-introspection.

[1]: See https://bugzilla.gnome.org/show_bug.cgi?id=743349

https://bugzilla.gnome.org/show_bug.cgi?id=743350

11 years agogtklistbox: add bind_model()
Lars Uebernickel [Mon, 9 Feb 2015 10:49:31 +0000 (11:49 +0100)]
gtklistbox: add bind_model()

gtk_list_box_bind_model() binds a GListModel to a GtkListBox.

This is a first step towards having GListModel support in Gtk. It's not
useful for large models, because GtkListBox always creates all widgets
for all rows.

11 years agoGtkListBoxRow: Update the listbox's cursor row when focusing
Timm Bäder [Tue, 10 Feb 2015 19:02:08 +0000 (20:02 +0100)]
GtkListBoxRow: Update the listbox's cursor row when focusing

https://bugzilla.gnome.org/show_bug.cgi?id=708320

11 years agofile chooser: Allow opening folders in the file manager
Matthias Clasen [Thu, 12 Feb 2015 04:34:04 +0000 (23:34 -0500)]
file chooser: Allow opening folders in the file manager

This has been suggested in
https://bugzilla.gnome.org/show_bug.cgi?id=325150#c2

11 years agowayland: Implement minimize support
Armin K [Tue, 10 Feb 2015 23:06:38 +0000 (00:06 +0100)]
wayland: Implement minimize support

Use the existing xdg_surface API for minimization.

https://bugzilla.gnome.org/show_bug.cgi?id=695945

11 years agomir, gl: Ensure we use the 3.2 core profile
Marco Trevisan (Treviño) [Thu, 12 Feb 2015 02:34:05 +0000 (03:34 +0100)]
mir, gl: Ensure we use the 3.2 core profile

Emit an error if the profile is different.

11 years agomir: Switch GDK_GL_PROFILE_DEFAULT to mean 3_2_CORE
Marco Trevisan (Treviño) [Thu, 12 Feb 2015 02:32:11 +0000 (03:32 +0100)]
mir: Switch GDK_GL_PROFILE_DEFAULT to mean 3_2_CORE

Instead of LEGACY.

11 years agomir, GL: Split GL context creation in two phases
Marco Trevisan (Treviño) [Thu, 12 Feb 2015 02:03:18 +0000 (03:03 +0100)]
mir, GL: Split GL context creation in two phases

Move egl_context initialization in gdk_gl_context_realize

 • gdk_window_create_gl_context() creates a GdkGLContext
 • gdk_gl_context_realize() creates the underlying resources

https://bugzilla.gnome.org/show_bug.cgi?id=741946

11 years agoconfigure.ac: bump mirclient dependency to 0.11
Marco Trevisan (Treviño) [Thu, 12 Feb 2015 01:20:24 +0000 (02:20 +0100)]
configure.ac: bump mirclient dependency to 0.11

11 years agoRevert "image: Optimize non-resize changes"
Matthias Clasen [Wed, 11 Feb 2015 17:01:36 +0000 (12:01 -0500)]
Revert "image: Optimize non-resize changes"

This reverts commit 6276b9cda0b179e6a29b9002f82a338dc6f9649f.

This change was causing problems in gnome-mines. Revert it
until we can figure out what exactly is going wrong there.
See https://bugzilla.redhat.com/show_bug.cgi?id=1190887

11 years agoUpdated Norwegian bokmål translation.
Kjartan Maraas [Wed, 11 Feb 2015 15:46:00 +0000 (16:46 +0100)]
Updated Norwegian bokmål translation.

11 years agoUpdated Norwegian bokmål translation.
Kjartan Maraas [Wed, 11 Feb 2015 15:37:34 +0000 (16:37 +0100)]
Updated Norwegian bokmål translation.

11 years agoBump glib requirement
Matthias Clasen [Wed, 11 Feb 2015 01:15:58 +0000 (20:15 -0500)]
Bump glib requirement

Needed for g_autoptr.

11 years agoBump version
Matthias Clasen [Tue, 10 Feb 2015 23:04:15 +0000 (18:04 -0500)]
Bump version

11 years agostylecontext: Don't use cache when unsaved
Benjamin Otte [Tue, 10 Feb 2015 22:49:15 +0000 (23:49 +0100)]
stylecontext: Don't use cache when unsaved

Fixes image-load-from-file reftest

11 years agoUpdates
Matthias Clasen [Tue, 10 Feb 2015 16:29:59 +0000 (11:29 -0500)]
Updates

11 years agoFix annotations
Matthias Clasen [Sun, 8 Feb 2015 20:02:07 +0000 (21:02 +0100)]
Fix annotations

The function gtk_label_set_attributes() is also used to
unset attributes, by passing %NULL. Reflect that in the
argument annotations.

11 years agogl: Fix the required version setter
Emmanuele Bassi [Tue, 10 Feb 2015 10:16:53 +0000 (10:16 +0000)]
gl: Fix the required version setter

We don't allow a version tuple to be lower than (3, 2), but we should
allow versions above that.

https://bugzilla.gnome.org/show_bug.cgi?id=744212

11 years agowin32/gl: Ensure we use the 3.2 core profile
Chun-wei Fan [Tue, 10 Feb 2015 08:20:37 +0000 (16:20 +0800)]
win32/gl: Ensure we use the 3.2 core profile

Emit an error if the profile is different.

This is a follow-up commit to commits cc45e82 (x11/gl: Ensure we use the
3.2 core profile) and 2d9081d (wayland/gl: Ensure we use the 3.2 core
profile), so that we do the same on GDK-Win32.  Update variable names and
comments so that the code is clearer to people, as we still need a
temporary legacy WGL context first before we can use
wglCreateContextAttribsARB() to create a WGL core (3.2+) context.

https://bugzilla.gnome.org/show_bug.cgi?id=741946

11 years agogl: Put shaders in static storage
Emmanuele Bassi [Tue, 10 Feb 2015 03:33:02 +0000 (03:33 +0000)]
gl: Put shaders in static storage

We are not changing the shader code.

The compiler will hopefully put them in the .rodata section.

11 years agogdkgl should use shader version 1.50
Niels Nesse [Tue, 10 Feb 2015 09:11:24 +0000 (01:11 -0800)]
gdkgl should use shader version 1.50

Using version 1.20 with a forward compatible 3.2 core context is incorrect
since OpenGL 3.2 deprecates shader version 1.20 (See section E.2). The latest
fglrx drivers will not compile these shaders.

https://bugzilla.gnome.org/show_bug.cgi?id=744203

11 years agoUpdated Lithuanian translation
Aurimas Černius [Mon, 9 Feb 2015 20:59:13 +0000 (22:59 +0200)]
Updated Lithuanian translation

11 years agodemo: Change the resource path for the shaders
Emmanuele Bassi [Mon, 9 Feb 2015 19:32:38 +0000 (19:32 +0000)]
demo: Change the resource path for the shaders

We need to use the same name as the "plugin" so that the main UI will
display the resources inside a notebook tab.

11 years agogl: Drop GdkGLContextClass.upload_texture()
Emmanuele Bassi [Mon, 9 Feb 2015 19:09:31 +0000 (19:09 +0000)]
gl: Drop GdkGLContextClass.upload_texture()

It's unnecessary to allow per-backend overrides.

11 years agodemo: Move the GLSL shaders to resources
Emmanuele Bassi [Mon, 9 Feb 2015 16:27:44 +0000 (16:27 +0000)]
demo: Move the GLSL shaders to resources

It's easier to use them or modify them as separate files, instead of
inlined inside the C source.

https://bugzilla.gnome.org/show_bug.cgi?id=741946

11 years agogl: Clean up the required version accessors
Emmanuele Bassi [Mon, 9 Feb 2015 16:10:22 +0000 (16:10 +0000)]
gl: Clean up the required version accessors

We can simplify the code, since we only have core GL profiles in GDK.

https://bugzilla.gnome.org/show_bug.cgi?id=741946

11 years agodocs: We do not support non-core GL profiles
Emmanuele Bassi [Mon, 9 Feb 2015 16:09:25 +0000 (16:09 +0000)]
docs: We do not support non-core GL profiles

No need to mention that some API only works on core GL profiles in the
GdkGLContext docs.

https://bugzilla.gnome.org/show_bug.cgi?id=741946

11 years agogl: Clean up pre-requisite checks for GdkGLContext setters
Emmanuele Bassi [Mon, 9 Feb 2015 16:08:43 +0000 (16:08 +0000)]
gl: Clean up pre-requisite checks for GdkGLContext setters

We don't support non-core profiles.

https://bugzilla.gnome.org/show_bug.cgi?id=741946

11 years agowayland/gl: Ensure we use the 3.2 core profile
Emmanuele Bassi [Mon, 9 Feb 2015 15:56:18 +0000 (15:56 +0000)]
wayland/gl: Ensure we use the 3.2 core profile

Emit an error if the profile is different.

https://bugzilla.gnome.org/show_bug.cgi?id=741946

11 years agox11/gl: Ensure we use the 3.2 core profile
Emmanuele Bassi [Mon, 9 Feb 2015 15:55:08 +0000 (15:55 +0000)]
x11/gl: Ensure we use the 3.2 core profile

Drop the dead code for the legacy profile, and return an error when
realizing if the profile is incorrect.

https://bugzilla.gnome.org/show_bug.cgi?id=741946

11 years agodemos: Update the GtkGLArea demo code
Emmanuele Bassi [Thu, 5 Feb 2015 16:39:53 +0000 (16:39 +0000)]
demos: Update the GtkGLArea demo code

Same way we updated the testglarea test code.

https://bugzilla.gnome.org/show_bug.cgi?id=741946

11 years agotests: Update testglarea
Emmanuele Bassi [Fri, 30 Jan 2015 17:20:44 +0000 (17:20 +0000)]
tests: Update testglarea

Since we dropped the legacy OpenGL compatibility profile, we need to use
recent OpenGL APi and concepts. This also means that the example code
gets a tad more complicated.

https://bugzilla.gnome.org/show_bug.cgi?id=741946

11 years agogl: Add more debugging notes
Emmanuele Bassi [Thu, 5 Feb 2015 16:23:04 +0000 (16:23 +0000)]
gl: Add more debugging notes

https://bugzilla.gnome.org/show_bug.cgi?id=741946

11 years agoglarea: Do not use extension API
Emmanuele Bassi [Wed, 28 Jan 2015 19:07:33 +0000 (19:07 +0000)]
glarea: Do not use extension API

We are using GL contexts with Core GL profiles, so we need to use the
proper API, not the one provided by extensions.

https://bugzilla.gnome.org/show_bug.cgi?id=741946

11 years agogl: Do not use the extension API for core GL
Emmanuele Bassi [Wed, 28 Jan 2015 19:06:37 +0000 (19:06 +0000)]
gl: Do not use the extension API for core GL

Since we are using a Core GL profile, we need to drop the
extension-based API.

https://bugzilla.gnome.org/show_bug.cgi?id=741946

11 years agogl: Drop OpenGL legacy profile
Emmanuele Bassi [Wed, 28 Jan 2015 19:04:22 +0000 (19:04 +0000)]
gl: Drop OpenGL legacy profile

We simply don't want to care about legacy OpenGL.

All supported platforms also have support for OpenGL ≥ 3.2; it would
complicate the internal code; and would force us to use legacy GL
contexts internally if the first context created by the user is a legacy
GL context, and disable creation of core-3.2 contexts after that.

We will need to fix all our code examples to use the Core 3.2 profile.

https://bugzilla.gnome.org/show_bug.cgi?id=741946

11 years agogl: Move getters for context options to the public API
Emmanuele Bassi [Wed, 28 Jan 2015 14:37:26 +0000 (14:37 +0000)]
gl: Move getters for context options to the public API

They can be useful for third party code as well.

https://bugzilla.gnome.org/show_bug.cgi?id=741946

11 years agoSwitch GDK_GL_PROFILE_DEFAULT to mean 3_2_CORE
Emmanuele Bassi [Wed, 28 Jan 2015 12:31:36 +0000 (12:31 +0000)]
Switch GDK_GL_PROFILE_DEFAULT to mean 3_2_CORE

Instead of LEGACY.

https://bugzilla.gnome.org/show_bug.cgi?id=741946

11 years agowin32/gl: Use the GdkGLContext options
Chun-wei Fan [Fri, 30 Jan 2015 06:32:26 +0000 (14:32 +0800)]
win32/gl: Use the GdkGLContext options

https://bugzilla.gnome.org/show_bug.cgi?id=741946

11 years agoGDK-Win32: Split GL context creation in two phases
Chun-wei Fan [Fri, 30 Jan 2015 05:53:31 +0000 (13:53 +0800)]
GDK-Win32: Split GL context creation in two phases

Like what is being done in the X11 and Wayland backends, create the
GdkWin32GLContext in 2 steps, where we only create the actual WGL context
in _gdk_win32_gl_context_realize().

https://bugzilla.gnome.org/show_bug.cgi?id=741946

11 years agowayland/gl: Use the GdkGLContext options
Emmanuele Bassi [Wed, 28 Jan 2015 12:29:37 +0000 (12:29 +0000)]
wayland/gl: Use the GdkGLContext options

https://bugzilla.gnome.org/show_bug.cgi?id=741946

11 years agox11/gl: Use the GdkGLContext options
Emmanuele Bassi [Wed, 28 Jan 2015 09:40:34 +0000 (09:40 +0000)]
x11/gl: Use the GdkGLContext options

When creating an OpenGL context using the glXCreateContextAttribs()
function.

https://bugzilla.gnome.org/show_bug.cgi?id=741946

11 years agogl: Add context options
Emmanuele Bassi [Wed, 28 Jan 2015 09:34:16 +0000 (09:34 +0000)]
gl: Add context options

Users of the GdkGLContext API should be allowed to set properties on the
shim GdkGLContext instance prior to realization, so that the
backend-specific implementation can use the value of those properties
when creating the windowing system specific resources.

The main three options are:

 • a major/minor version tuple, to request a specific GL version
 • a debug bit, to request a "debug context", which provides additional
   validation and run time checking
 • a forward compatibility bit, to request a context that does not
   have deprecated functionality

See also:
 - https://www.opengl.org/registry/specs/ARB/glx_create_context.txt

https://bugzilla.gnome.org/show_bug.cgi?id=741946

11 years agoGL: Split GL context creation in two phases
Emmanuele Bassi [Tue, 27 Jan 2015 21:23:23 +0000 (21:23 +0000)]
GL: Split GL context creation in two phases

One of the major requests by OpenGL users has been the ability to
specify settings when creating a GL context, like the version to use
or whether the debug support should be enabled.

We have a couple of requirements in terms of API:

 • avoid, if at all possible, the "C arrays of integers with
   attribute, value pairs", which are hard to write and hard
   to bind in non-C languages.
 • allow failing in a recoverable way.
 • do not make the GL context creation API a mess of arguments.

Looking at prior art, it seems that a common pattern is to split the
construction phase in two:

 • a first phase that creates a GL context wrapper object and
   does preliminary checks on the environment.
 • a second phase that creates the backend-specific GL object.

We adopted a similar pattern:

 • gdk_window_create_gl_context() creates a GdkGLContext
 • gdk_gl_context_realize() creates the underlying resources

Calling gdk_gl_context_make_current() also realizes the context, so
simple GL users do not need to care. Advanced users will want to
call gdk_window_create_gl_context(), set up the optional requirements,
and then call gdk_gl_context_realize(). If either of these two steps
fails, it's possible to recover by changing the requirements, or simply
creating a new GdkGLContext instance.

https://bugzilla.gnome.org/show_bug.cgi?id=741946

11 years agoUpdated Russian translation
Stas Solovey [Sun, 8 Feb 2015 22:14:05 +0000 (22:14 +0000)]
Updated Russian translation

11 years agoUpdated Norwegian bokmål translation
Kjartan Maraas [Sun, 8 Feb 2015 18:34:46 +0000 (19:34 +0100)]
Updated Norwegian bokmål translation

11 years agoUpdated POTFILES.skip
Piotr Drąg [Sat, 7 Feb 2015 16:06:58 +0000 (17:06 +0100)]
Updated POTFILES.skip

11 years agocss: Move scale to GtkStyleProviderPrivate
Benjamin Otte [Sat, 31 Jan 2015 10:56:15 +0000 (11:56 +0100)]
css: Move scale to GtkStyleProviderPrivate

This way, we can remove it as a separate argument from
gtk_css_value_compute() and allow computation to only depend on one
thing: the style provider.

11 years agosettings: Provide a default style cascade per scale
Benjamin Otte [Fri, 6 Feb 2015 09:13:11 +0000 (10:13 +0100)]
settings: Provide a default style cascade per scale

This guarantees we only create 1 extra style cascade in total for hidpi
and not one per style context.

Style cascades are now nested like this:

GtkSettings root cascade (scale == 1)
 |
 +-- GtkSettings per scale cascade (for any scale, no custom providers)
 |
 +-- GtkStyleContext custom cascade (for any scale, custom providers)

This requires a bunch of care when changing cascade-related properties
inside GtkStyleContext, so that it ends up with a properly setup
cascade, but I think I got those cases right.

The only thing we don't do yet is reverting to a GtkSettings cascade
when the last custom provider is removed from a custom cascade.

11 years agostylecontext: Store the scale value in the cascade
Benjamin Otte [Sat, 31 Jan 2015 10:01:25 +0000 (11:01 +0100)]
stylecontext: Store the scale value in the cascade

This is in preparation for the next commits.

11 years agogdkglcontext-win32.h: Clean Up a Bit
Chun-wei Fan [Fri, 6 Feb 2015 05:00:21 +0000 (13:00 +0800)]
gdkglcontext-win32.h: Clean Up a Bit

We don't have a Win32-specific ->upload_texture() anymore, so don't
indicate so.  Left out this part from my previous commit.

11 years agoGDK-Win32: Drop Win32-specific ->upload_texture()
Chun-wei Fan [Fri, 6 Feb 2015 04:41:38 +0000 (12:41 +0800)]
GDK-Win32: Drop Win32-specific ->upload_texture()

The default ->upload_texture() works also for Windows since commit 27cf0fa,
as some of the problems described in 742953 also applied for GL core
contexts on Windows as well before 27cf0fa.  Clean up the GDK-Win32 code a
little bit as a result.

11 years agotreeview: Fix copy/paste bug
Benjamin Otte [Fri, 6 Feb 2015 02:13:59 +0000 (03:13 +0100)]
treeview: Fix copy/paste bug

Introduced in 7eecb16404b9fdcd1377e1a159f5e94f079e24b7

11 years agocss: Add -gtk-dpi CSS property hack
Benjamin Otte [Thu, 5 Feb 2015 17:52:59 +0000 (18:52 +0100)]
css: Add -gtk-dpi CSS property hack

This property is necessary to ensure widgets automatically update after
the text scale factor is changed desktop-wide.

And if I'm already doing a property like this, I can make it
overridable. So now you can override the dpi per-widget with CSS like
GtkSwitch {
  -gtk-dpi: 48;
}
if you want to debug things.

Long-term, we want to get rid of this property and insist on dpi being
96 everywhere and people can change the font size to get larger fonts.

11 years agotreeview: Don't create an overly large pixel cache
Benjamin Otte [Sat, 24 Jan 2015 02:29:18 +0000 (03:29 +0100)]
treeview: Don't create an overly large pixel cache

GPUs generally have problems when you create a 35000px wide surface.
Luckily X catches this and sends a BadAlloc. Which GTK immediately
abort()s on.

Testcase included.

https://bugzilla.redhat.com/show_bug.cgi?id=1163579

11 years agoblur: Simplify return_if_fail()
Benjamin Otte [Tue, 3 Feb 2015 07:06:39 +0000 (08:06 +0100)]
blur: Simplify return_if_fail()

11 years agomir: release surface before rendering parent
William Hua [Wed, 4 Feb 2015 09:32:29 +0000 (10:32 +0100)]
mir: release surface before rendering parent

We should remove the mir and cairo surface before rendering the
transient_for, which will regenerate the cairo surface anyways.
Otherwise, we end up releasing both, when we only really want to get rid
of the mir surface.

11 years agomir: don't always request mir surfaces
William Hua [Tue, 3 Feb 2015 15:23:14 +0000 (16:23 +0100)]
mir: don't always request mir surfaces

Some child window behaviour is faked by painting in the parent, so we
don't bother creating the Mir surface in that case.

11 years agomir: reconstruct surface if window is moved
William Hua [Mon, 26 Jan 2015 23:29:07 +0000 (18:29 -0500)]
mir: reconstruct surface if window is moved

11 years agomir: stop using deprecated surface api
William Hua [Mon, 19 Jan 2015 17:08:43 +0000 (12:08 -0500)]
mir: stop using deprecated surface api

11 years agomir: fix issues with mouse over parent menu
William Hua [Thu, 8 Jan 2015 05:24:42 +0000 (00:24 -0500)]
mir: fix issues with mouse over parent menu

Mouse over a parent menu[bar] didn't work while the menu was open.
The fix was to correct the behaviour of pointer crossing events so that
the pointer appears to be only inside one window at a time.

See: http://tronche.com/gui/x/xlib/events/window-entry-exit/normal.html

11 years agomir: add back window hierarchy functions
William Hua [Thu, 8 Jan 2015 05:23:02 +0000 (00:23 -0500)]
mir: add back window hierarchy functions

11 years agomir: stop forwarding motion events to subwindows
William Hua [Wed, 7 Jan 2015 17:18:03 +0000 (12:18 -0500)]
mir: stop forwarding motion events to subwindows

11 years agomir: generate leave events for transient children
William Hua [Wed, 17 Dec 2014 17:37:28 +0000 (12:37 -0500)]
mir: generate leave events for transient children

11 years agomir: use monitor plug names more similar to the ones used in Xmir
Marco Trevisan (Treviño) [Fri, 12 Dec 2014 17:42:05 +0000 (18:42 +0100)]
mir: use monitor plug names more similar to the ones used in Xmir

11 years agomir: only paint background if window has one
Marco Trevisan (Treviño) [Fri, 12 Dec 2014 02:01:38 +0000 (03:01 +0100)]
mir: only paint background if window has one

11 years agomir: use old scrolling system if we get simple integer values
Marco Trevisan (Treviño) [Fri, 12 Dec 2014 00:40:55 +0000 (01:40 +0100)]
mir: use old scrolling system if we get simple integer values

11 years agomir: end the current grab on ungrab
William Hua [Tue, 9 Dec 2014 13:57:21 +0000 (08:57 -0500)]
mir: end the current grab on ungrab

11 years agomir: only render non-top-level transients.
William Hua [Mon, 8 Dec 2014 21:24:17 +0000 (16:24 -0500)]
mir: only render non-top-level transients.

11 years agomir: handle new MirCloseSurfaceEvent
Marco Trevisan (Treviño) [Fri, 5 Dec 2014 14:53:03 +0000 (15:53 +0100)]
mir: handle new MirCloseSurfaceEvent

11 years agomir: reset cursor_inside on hide/withdraw
William Hua [Thu, 4 Dec 2014 15:03:40 +0000 (10:03 -0500)]
mir: reset cursor_inside on hide/withdraw

Without this, we generate incorrect crossing events for transient
windows.

11 years agomir: disable some debug output
William Hua [Wed, 3 Dec 2014 21:48:58 +0000 (16:48 -0500)]
mir: disable some debug output

11 years agomir: skip windows that aren't visible
William Hua [Wed, 3 Dec 2014 16:30:34 +0000 (11:30 -0500)]
mir: skip windows that aren't visible